<ui:composition xmlns="http://www.w3.org/1999/xhtml"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:f="http://java.sun.com/jsf/core"
	xmlns:q="http://huliqing.name/qfaces"
	xmlns:ui="http://java.sun.com/jsf/facelets"
	template="/example/_template.xhtml">
	<ui:define name="title">saveState</ui:define>
	<ui:define name="header">saveState组件示例</ui:define>
	<ui:define name="content">
		<q:resource />
		<q:saveState value="#{saveStateBean}" />
	</ui:define>
	<ui:define name="description" >
		这是一个不可见的组件，非Ajax方式。有时候在使用JSF的过程中，会因为没有保存entity的状态信息
		而使其部分属性丢失，如某些id属性，在使用那些没有实现EditableValueHolder接口的组件（如output）
		显示该值时，该id的信息会因为没有保存而在重新请求或恢复视图之后丢失，典型的做法是使用inputHidden
		组件对该属性进行保存，但有时候需要保存的信息太多，使用inputHidden逐个属性进行保存就会显得很麻烦。
		而使用该组件可以一次将整个entity的状态全保存起来。举例如：value="\#{MyBean.entity}" 注意：需要
		进行状态保存的entity必须实现了java.io.Serializable接口
	</ui:define>
	<ui:define name="htmlCode" >
		<h:outputText value="#{saveStateBean.htmlCode}" />
	</ui:define>
	<ui:define name="javaCode" >
		<h:outputText value="#{saveStateBean.javaCode}" />
	</ui:define>
	<div>
		<input type="button" id="myButton" value="MyButton" onclick="QFaces.facesMakeFrame('myButton');"/>
	</div>
</ui:composition>